if (this.myPlugin === undefined) {
    this.myPlugin = {};
}

/**
 * 节流函数，控制函数在一段时间内的触发次数
 * @param {*} callback
 * @param {*} wait
 */
this.myPlugin.throttle = function (callback, wait) {
    var timer = null
    return function () {
        //如果有在计时的事件，退出
        if (timer !== null) {
            return
        }
        //假设调用这个函数时，最后一个传this，前面传其他参数
        let that = arguments[0]
        timer = setTimeout(function () {
            callback.call(that, arguments)
            clearTimeout(timer)
            timer = null
        }, wait)
    }
};

/**
 * 节流函数，控制函数在一段时间内的触发次数
 * @param {*} callback
 * @param {*} wait
 */
this.myPlugin.throttleImmediately = function (callback, wait) {
    let lastTime = 0
    return function () {
        let now = Date.now()
        //如果距离上次执行大于某个时间，再执行
        if (now - lastTime >= wait) {
            callback()
            lastTime = now
        }
        //否则什么也不做
    }
};